package com.zz.specialFile;

import com.zz.Enum.A;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.List;

public class XmlTest {
    public static void main(String args[]) throws DocumentException {
        //1.创建一个Dom4j框架提供的解析器对象
        SAXReader saxReader = new SAXReader();

        //2.使用saxReader对象把需要解析的XML文件读成一个Document对象
        Document document = saxReader.read("opp-app1\\src\\Users.xml");

        //3.从文件对象中解析XML文件的全部数据
        Element root = document.getRootElement();
        System.out.println(root.getName());

        //4.获取根元素下的全部一级子元素
        List<Element> elements = root.elements();
        //获得当前元素下指定子元素
        //List<Element> elements = root.elements("user");
        for(Element element : elements){
            System.out.println(element.getName());
        }
        //如果下面有很多子元素user，默认获取第一个
        Element user = root.element("user");
        System.out.println(user.elementText("name"));

        //5.获取元素的属性信息
        //方法一
        System.out.println(user.attributeValue("id"));
        //方法二
        Attribute id = user.attribute("id");
        System.out.println(id.getName());
        System.out.println(id.getValue());

        //获取所有元素的属性名和属性值
        List <Attribute> attributes = user.attributes();
        for(Attribute attribute : attributes){
            System.out.println(attribute.getName() + "=" + attribute.getValue());
        }

        //7.如何获取全部的文本内容：获取当前元素下的子元素文本值
        System.out.println(user.elementText("name"));
        System.out.println(user.elementText("地址"));
        System.out.println(user.elementText("password"));

        Element data = user.element("data");
        System.out.println(data.getText());
        System.out.println(data.getTextTrim());//取出文本去除前后空格
    }
}
